#include <limits>
#include "opencv2/opencv.hpp"

namespace cv
{

  using std::vector;

  class MSER2
  {
  public:
    //! the full constructor
    static Ptr<MSER2> create(int _delta = 5, int _min_area = 60, int _max_area = 14400,
      double _max_variation = 0.25, double _min_diversity = .2,
      int _max_evolution = 200, double _area_threshold = 1.01,
      double _min_margin = 0.003, int _edge_blur_size = 5);

    virtual void detectRegions(InputArray _src, vector< vector<Point> >& msers_blue, vector<Rect>& bboxes_blue,
      vector< vector<Point> >& msers_yellow, vector<Rect>& bboxes_yellow) = 0;

    virtual void setDelta(int delta) = 0;
    virtual int getDelta() const = 0;

    virtual void setMinArea(int minArea) = 0;
    virtual int getMinArea() const = 0;

    virtual void setMaxArea(int maxArea) = 0;
    virtual int getMaxArea() const = 0;

    virtual void setPass2Only(bool f) = 0;
    virtual bool getPass2Only() const = 0;
  };
}